afad35dd4e8b6e3388e6345c4a853971e87650a2,platform/lang-impl/src/com/intellij/execution/console/RunIdeConsoleAction.java,RunIdeConsoleAction,getConsoleView,#Project#VirtualFile#ScriptEngine#,189
Before Change
ConsoleView existing = ref == null ? null : ref.get();
if (existing != null && !Disposer.isDisposed(existing)) return existing;
ConsoleView consoleView = TextConsoleBuilderFactory.getInstance().createBuilder(project).getConsole();
if (psiFile != null) psiFile.putCopyableUserData(CONSOLE_VIEW_KEY, new WeakReference<ConsoleView>(consoleView));
DefaultActionGroup toolbarActions = new DefaultActionGroup();
JComponent consoleComponent = new JPanel(new BorderLayout());
consoleComponent.add(consoleView.getComponent(), BorderLayout.CENTER);
After Change
WeakReference<RunContentDescriptor> ref = psiFile.getCopyableUserData(DESCRIPTOR_KEY);
RunContentDescriptor existing = ref == null ? null : ref.get();
if (existing != null && existing.getExecutionConsole() != null) return existing;
ConsoleView consoleView = TextConsoleBuilderFactory.getInstance().createBuilder(project).getConsole();
DefaultActionGroup toolbarActions = new DefaultActionGroup();
JComponent consoleComponent = new JPanel(new BorderLayout());
consoleComponent.add(consoleView.getComponent(), BorderLayout.CENTER);
consoleComponent.add(ActionManager.getInstance().createActionToolbar(ActionPlaces.UNKNOWN, toolbarActions, false).getComponent(),
BorderLayout.WEST);
final RunContentDescriptor descriptor = new RunContentDescriptor(consoleView, null, consoleComponent, file.getName()) {
@Override
public boolean isContentReuseProhibited() {
return true;
}
};
Executor executor = DefaultRunExecutor.getRunExecutorInstance();
//toolbarActions.add(new DumbAwareAction("Rerun", null, AllIcons.Actions.Rerun) {
// @Override
// public void update(@NotNull AnActionEvent e) {
// ProgressIndicator indicator = indicatorRef.get();
// e.getPresentation().setEnabled(file.isValid() && (indicator == null || !indicator.isRunning()));
// }
//
// @Override
// public void actionPerformed(@NotNull AnActionEvent e) {
// consoleView.clear();
// rerunRunnable.run();
// }
//});
toolbarActions.add(new CloseAction(executor, descriptor, project));
for (AnAction action : consoleView.createConsoleActions()) {
toolbarActions.add(action);
}
psiFile.putCopyableUserData(DESCRIPTOR_KEY, new WeakReference<RunContentDescriptor>(descriptor));
ExecutionManager.getInstance(project).getContentManager().showRunContent(executor, descriptor);
return descriptor;
}